﻿using System;
using System.Threading;
using System.Threading.Tasks;


namespace wnet.admin.CommQueue
{
    /// <summary>
    /// 实现后台工作者（使用 Timer）
    /// </summary>
    public class AlarmProcessor
    {
        private readonly Timer _timer;

        public AlarmProcessor()
        {

            // 创建一个定时器，首次立即执行，之后每隔1秒执行一次
            _timer = new Timer(async _ => await ProcessAlarms(), null, TimeSpan.Zero, TimeSpan.FromSeconds(1));
        }

        private async Task ProcessAlarms()
        {
            // 确保每次只处理一次队列
            await AlarmQueue.ProcessQueueAsync();
        }

        public void Stop()
        {
            _timer?.Change(Timeout.Infinite, 0);
        }
    }
}